home *** CD-ROM | disk | FTP | other *** search
- // Filename: CALC.WMC
- // "CALC" Generated by Visual Programmer.
- // Author: Blue Sky
-
- //
- // ***********************************************************************
- // Do not add code here. Add code in the .CPP file.
- //
- // This file is maintained by the Switch-It Module.
- // As you make changes in your applications design,
- // this file is automatically updated, therefore you never modify this file.
- //
- //
- //
- // For more information,
- // see the section "How code is generated" in the documentation.
- //
- // ***********************************************************************
- //
-
- // *************************************************************
- // GLOBAL VARIABLES
- // *************************************************************
-
- BOOL bHelpSupport = FALSE; // Controlling Help Support
- DWORD dwDialogProp = 0; // Controlling Dialog Box Color
- BOOL b256Color = TRUE; // Controlling bitmap drawing
- BOOL bPreCreateCheck= TRUE; // Controlling PreCreateWindow handling
- HINSTANCE hBMPInst = 0; // Handle to instance for bitmaps
- UINT wPrivateMessage= RegisterWindowMessage("BLDPrivateMessage");
-
-
-
-
-
- // *************************************************************
- // Member Functions for Class: Cwm_BaseApplication
- // Base Class : CWinApp
- // *************************************************************
-
-
- BEGIN_MESSAGE_MAP(Cwm_BaseApplication, CWinApp)
-
- // Processing of linked menu items in menu: CALC
-
- END_MESSAGE_MAP()
-
-
- Cwm_BaseApplication::Cwm_BaseApplication (const char* pName)
- : CWinApp (pName)
- {
- pWndClient = NULL;
- }
-
-
- BOOL Cwm_BaseApplication::InitApplication()
- {
-
- return CWinApp::InitApplication();
- }
-
-
-
- BOOL Cwm_BaseApplication::InitInstance()
- {
- OFSTRUCT of;
- int len;
- char *pStr;
-
- if(dwDialogProp&BLDGRAY_DIALOGBOX)
- SetDialogBkColor();
-
- // Create the main window
- Cwm_MainWnd* ms_pMainUserWnd;
- ms_pMainUserWnd = BLDMainCreateWnd(NULL);
- m_pMainWnd = ms_pMainUserWnd;
-
-
- ::GetModuleFileName(AfxGetInstanceHandle(),ms_szHelpFilePath,sizeof(ms_szHelpFilePath));
- len=lstrlen(ms_szHelpFilePath);
- for (pStr=&ms_szHelpFilePath[len-1];pStr>ms_szHelpFilePath;--pStr)
- {
- if (*pStr=='\\')
- {
- pStr++;
- lstrcpy(pStr,"CALC.HLP");
- if (!::OpenFile(ms_szHelpFilePath,&of,OF_EXIST)!=-1)
- {
- lstrcpy(ms_szHelpFilePath,"CALC.HLP");
- }
- break;
- }
- }
- m_pszHelpFilePath = ms_szHelpFilePath;
-
-
- return CWinApp::InitInstance();
- }
-
-
-
- int Cwm_BaseApplication::ExitInstance()
- {
-
- return CWinApp::ExitInstance();
- }
-
-
-
- //No help support, return FALSE
- BOOL Cwm_BaseApplication::MenuHelp(DWORD dwData)
- {
- return FALSE;
- }
-
-
-
- // *************************************************************
- // Member Functions for Class: Cwm_MainBaseWnd
- // Base Class : CFrameWnd
- // *************************************************************
-
-
- CString Cwm_MainBaseWnd::ms_strWndClass; //Window Class Name
-
-
- IMPLEMENT_DYNCREATE(Cwm_MainBaseWnd, CFrameWnd)
-
- BEGIN_MESSAGE_MAP(Cwm_MainBaseWnd, CFrameWnd)
-
- ON_REGISTERED_MESSAGE(wPrivateMessage,SimHandlePrivateMessage)
- ON_WM_CREATE()
-
- END_MESSAGE_MAP()
-
-
-
- Cwm_MainBaseWnd::Cwm_MainBaseWnd()
- : CFrameWnd()
- {
-
- ms_pToolbarTop= ms_pToolbarBottom=ms_pToolbarLeft=ms_pToolbarRight=NULL;
- ms_pWndClient = NULL;
-
-
- if (ms_strWndClass.IsEmpty())
- SimRegisterClass();
-
- }
-
-
-
- Cwm_MainBaseWnd::~Cwm_MainBaseWnd()
- {
- }
-
-
-
- BOOL Cwm_MainBaseWnd::SimRegisterClass()
- {
- WNDCLASS WndClass;
-
- WndClass.lpszClassName = "BLD_Main";
- WndClass.style = CS_DBLCLKS;
- WndClass.cbClsExtra = 0;
- WndClass.cbWndExtra = 0;
- WndClass.hInstance = AfxGetInstanceHandle();
- WndClass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
- WndClass.hCursor = LoadCursor(NULL,IDC_ARROW);
- WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- WndClass.lpszMenuName = NULL;
-
- if (!ms_strWndClass.IsEmpty())
- return TRUE; // Already registered
-
- ms_strWndClass = AfxRegisterWndClass(WndClass.style,
- WndClass.hCursor, WndClass.hbrBackground, WndClass.hIcon);
-
- if (ms_strWndClass.IsEmpty())
- return FALSE;
- else
- return TRUE;
- }
-
-
-
- BOOL Cwm_MainBaseWnd::SimInitWindow(CWnd *pAParent)
- {
- CREATESTRUCT sCr;
-
- if (ms_strWndClass.IsEmpty())
- return FALSE;
-
- sCr.lpCreateParams = NULL;
- sCr.hInstance = AfxGetInstanceHandle();
- sCr.dwExStyle = 0;
- sCr.lpszClass = ms_strWndClass;
- sCr.lpszName = "Calculator";
- sCr.style = WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_OVERLAPPED;
- sCr.hwndParent = pAParent ? pAParent->GetSafeHwnd() : (HWND)NULL;
- sCr.x = CW_USEDEFAULT;
- sCr.y = 0;
- sCr.cx = CW_USEDEFAULT;
- sCr.cy = 0;
- sCr.hMenu = NULL;
-
- BOOL bRet;
-
- if (sCr.cx==CW_USEDEFAULT)
- {
- bRet = Create(ms_strWndClass,sCr.lpszName,sCr.style,
- rectDefault,pAParent,NULL,sCr.dwExStyle);
- }
- else
- {
- RECT r;
-
- r.left = sCr.x;
- r.top = sCr.y;
- r.right = sCr.cx+sCr.x;
- r.bottom = sCr.cy+sCr.y;
-
- bRet = Create(ms_strWndClass,sCr.lpszName,sCr.style,
- r,pAParent,NULL,sCr.dwExStyle);
- }
-
- if (!bRet)
- {
- BLDDisplayMessage(::GetActiveWindow(),BLD_CannotCreateWindow,"Main",
- MB_OK | MB_ICONASTERISK);
- return FALSE;
- }
-
- ShowWindow(TheApp.m_nCmdShow);
- UpdateWindow();
-
- return TRUE;
- }
-
-
- // PreCreateWindow - overridden for window to get correct properties
- BOOL Cwm_MainBaseWnd::PreCreateWindow(CREATESTRUCT& sCr)
- {
- if (!sCr.lpszClass&&bPreCreateCheck)
- {
- sCr.dwExStyle = 0;
- sCr.lpszClass = ms_strWndClass;
- sCr.lpszName = "Calculator";
- sCr.style = WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_OVERLAPPED;
-
- if (sCr.hMenu&&::IsMenu(sCr.hMenu))
- ::DestroyMenu(sCr.hMenu);
- sCr.hMenu = 0;
-
- }
- return CFrameWnd::PreCreateWindow(sCr);
- }
-
-
-
- int Cwm_MainBaseWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
-
- BLD_CALCClientClFunc(this);
- return CFrameWnd::OnCreate(lpCreateStruct);
- }
-
-
-
- LRESULT Cwm_MainBaseWnd::SimHandlePrivateMessage(WPARAM wParam,LPARAM lParam)
- {
- LPBLDSetChildDialog lpSetChildDialog;
- switch(wParam)
- {
- case SIM_GETCHILDDIALOG:
- switch(LOWORD(lParam))
- {
- case 0: //Client area controls
- return (LRESULT)(LPSTR)(CSimClientDlg*)ms_pWndClient;
- case CBRS_RIGHT:
- return (LRESULT)(LPSTR)(CSimToolbar*)ms_pToolbarRight;
- case CBRS_LEFT:
- return (LRESULT)(LPSTR)(CSimToolbar*)ms_pToolbarLeft;
- case CBRS_BOTTOM:
- return (LRESULT)(LPSTR)(CSimToolbar*)ms_pToolbarBottom;
- case CBRS_TOP:
- return (LRESULT)(LPSTR)(CSimToolbar*)ms_pToolbarTop;
- }
- break;
- case SIM_SETCHILDDIALOG:
- lpSetChildDialog = (LPBLDSetChildDialog)lParam;
- switch(lpSetChildDialog->nStyle)
- {
- case 0: //Client area controls
- ms_pWndClient = (CSimClientDlg*)lpSetChildDialog->pWnd;
- break;
- case CBRS_RIGHT:
- ms_pToolbarRight = (CSimToolbar*)lpSetChildDialog->pWnd;
- break;
- case CBRS_LEFT:
- ms_pToolbarLeft = (CSimToolbar*)lpSetChildDialog->pWnd;
- break;
- case CBRS_BOTTOM:
- ms_pToolbarBottom = (CSimToolbar*)lpSetChildDialog->pWnd;
- break;
- case CBRS_TOP:
- ms_pToolbarTop = (CSimToolbar*)lpSetChildDialog->pWnd;
- break;
- }
- break;
- case SIM_RELOADACCELERATORS:
- break;
- case SIM_LOADACCELTABLE:
- if(m_hAccelTable)
- m_hAccelTable=0;
- if(lParam)
- LoadAccelTable(MAKEINTRESOURCE((int)lParam));
- break;
- }
- return 0;
- }
-
-
- // *************************************************************
- // FUNCTION FOR SWITCHING MENU SET
- // *************************************************************
-
- BOOL BLDSwitchMenu(CWnd *pWnd,char *pTemplateName)
- {
- HMENU hMenu1,hMenu,hSubMenu;
- DWORD style;
-
- hMenu = 0;
- hSubMenu = 0;
-
- style = pWnd->GetStyle();
- if((style & WS_CHILD) == WS_CHILD) // Called from control in main window?
- {
- pWnd=pWnd->GetParent();
- if (!pWnd)
- return FALSE;
- style = pWnd->GetStyle();
- if((style & WS_CHILD) == WS_CHILD) // No menu in a WS_CHILD window.
- return FALSE;
- }
- if((style & WS_CAPTION) != WS_CAPTION) // No menu if no caption.
- return FALSE;
-
- hMenu1 = pWnd->GetMenu()->GetSafeHmenu();
-
- if (lstrcmpi(pTemplateName,"CALC")==0)
- hMenu = BLDLoadMenu(pWnd,IDR_CALC,&hSubMenu,TRUE);
-
- if (!hMenu)
- hMenu = LoadMenu(AfxGetResourceHandle(),pTemplateName);
- if (!hMenu)
- {
- BLDDisplayMessage(pWnd->GetSafeHwnd(),BLD_CannotLoadMenu,pTemplateName,
- MB_OK | MB_ICONASTERISK);
- return FALSE;
- }
-
- if (!pWnd->SetMenu(CMenu::FromHandle(hMenu)))
- return FALSE;
- if (hMenu1)
- DestroyMenu(hMenu1);
-
- pWnd->DrawMenuBar();
- return TRUE;
- }
-
-
- // Code to load menu and add bitmaps
- HMENU BLDLoadMenu(CWnd *pWnd,int iResource,HMENU *phSubMenu,BOOL bLoad)
- {
- HMENU hMenu;
-
- *phSubMenu = 0;
- if (bLoad)
- hMenu = LoadMenu(AfxGetResourceHandle(),MAKEINTRESOURCE(iResource));
- else
- {
- if (!pWnd)
- return FALSE;
- hMenu = pWnd->GetMenu()->GetSafeHmenu();
- }
-
- if(!hMenu)
- return FALSE;
-
-
- if (pWnd)
- BLDLoadAccelerators(pWnd,iResource);
-
- return hMenu;
- }
-
-
- // Code to load accelerators
- BOOL BLDLoadAccelerators(CWnd *pWnd,int iResource)
- {
-
- return TRUE;
- }
-